Peter Steinberger Founder and CEO, PSPDFKit
Founder and CEO at PSPDFKit. I love pushing the limits of Cocoa in PDF Viewer.
As an iOS developer working in accessibility at both large companies and small start-ups, I've come away with many anecdotes and lessons. In this talk, I'll share three concrete stories about what it means to work on accessibility at real jobs. We will go beyond demo apps and sample code to discuss real issues, both in the technical and product development areas. The goal of this talk is to highlight some of the interesting challenges you might face in your own accessibility work as well as possible pathways forward.
Sommer Panage Mobile Developer, Chorus
Mobile dev at Chorus (prev Twitter, Apple), accessibility specialist & circus artist.
Every iOS developer has hit the wall of trying to publish an iOS app. Code signing is one of the most hated topics in the field: it's obscure, complicated and not well understood. The talk will clarify all the components in the code signing process, and show how they play together.It should save you some time in the future, or you get all your money back™! The talk will go over private keys, .p12 archives, certificates, CSRs, provisioning profiles, teams, and show some usages in practice.
If you're only ever thinking about the 'average' user, you're probably making an app for no one. Each user has different needs, so how do you create interfaces that are simple yet flexible? In this talk you'll learn why Dynamic Type is important and how to support it in your apps.
Lets take a look at recently released Sourcery and how it can be applied in variety of different use-cases to make development more powerful and enjoyable, while at the same time limiting amount of human mistakes.
Krzysztof Zabłocki Dev, Speaker, Creator, The New York Times
Creator: Sourcery, Playgrounds, Apple Essential apps e.g. @foldify, 3D Engines. iOS at The New York Times
Scale changes everything. In this talk I will share learnings from my experiences of working on projects of varying sizes. We will discuss iOS development when scaling teams on products with a growing user base and a growing codebase and the kind of problems you encounter along the way.
Roy Marmelstein Software Engineer, Spotify
iOS at Spotify. Open source at http://github.com/marmelroy, ex-@zenlyapp
I'm normally a vanilla programmer. I like classic programming paradigms, and people who know me will tell you that I'm not a fan of third partly libraries. But, I'm a contractor, and that means I need to be able to do things that I wouldn't normally do Not only is FRP (RxSwift for the purposes of this talk) a large single dependency to add to a project, it also encourages a different programming style. I've spoken to people about FRP and I've been told that they see it as very abstract and can't find simple examples of these differences (beyond the classic example of validating a username and password). This talk will try to correct that by providing a side by side comparison and people can make their own minds up about whether it is something that they want to incorporate into their own apps.
Felix will talk about why open source is crucial for our ecosystem, how it can benefit you, and how to get started contributing.
Felix Krause Fastlane Guy, Google
Professional iOS Code Signing Issue Resolver - Creator of fastlane.tools. Now Google (previously Twitter)
I'm sure you've had the same question too: what is "The Best Way™" of programming? Agile? TDD? Haskell? Pair programming? I believe the answer has nothing to do with that. I've spent the last two years thinking exclusively about this question and working towards a solution. Do silver bullets exist? Come find out.
The innovation which surrounds the React Native and the larger Javascript community is worth taking a look at. In this talk I'll explore the speed of development which can be reached with React Native, the unexpected benefits of this stack, and how developing with it is in practice.
Apple's system frameworks make a lot of functionality available to us developers, from auto layout to calendrical calculations, locales, and formatting. Although the internal workings of these classes are not available to us, some implementation details are actually open source: auto layout is built on the Cassowary project, while NSCalendar, NSLocale, and the NSFormatter subclasses are built on top of the icucore framework. But because these projects are open-source, there's nothing stopping us from seeing how they work under the hood. However, Apple does keep some goodies to themselves (persistent Touch Bar items) and some system functionalities are only available through opaque mechanisms (AirDrop through UIActivityController). In this talk I detail how to search for hidden functionality, the wonders of disassembly and decompilation, and how to follow the code trails through to the methods you want.
Sadly, Marin Todorov is not feeling very well, and cannot make it. Luckily, Alex (@a2) is taking the workshop spot to teach us “Implementing TrollDrop on iOS” 💪. Download Hopper here (it’s ok if you don’t have it): https://www.hopperapp.com Get better soon Marin! 🤗
There’s lots and lots and lots of case studies and tutorials and SDKs and best practices that help you build and design systems from scratch. But not so many about iterating at scale. This talk covers building out a light weight system able to handle millions of consumers from client to server. What are the considerations of scale and the choices you have to make when you are already operating at a level where integrating other solutions is expensive? How do you manage negotiating features with your non-iOS engineer colleagues? How do you go determine MVP vs MaxVP? How do you measure success?
Apple deprecated and then discontinued OpenSSL for its platforms and OS some years ago, leaving us with access to cryptography only through the Security framework. Unless, of course, you want to do some nasty hacks with custom built openssl libraries. Unfortunately, the Security framework is not well documented, isn't specially developer friendly, and has not been thought to interact with 3rd parties, such as external servers making use of standard public key infrastructures and libraries such as OpenSSL. However, nowadays, it's a common requisite for our apps to interact with secure backends and RESTful APIs making use of asymmetric cryptography, KPIs or public key systems. In this presentation, I will explain how to make your iOS application interact with these external public key infrastructures, importing keys from external entities (probably generated via OpenSSL) and exporting the keys generated at the device so they can be used in signature and verification operations externally.
On iOS 11, iPads are becoming much more useful productivity and content creation tools. With Apple's push for Playgrounds.app and more permissive AppStore rules towards developer tools, it's clear Apple wants us to write code on iOS. But is this all that's needed to have world class IDEs for iOS? We'll start with a walkthrough of the history and state of the art of iOS IDEs and related developer tools (developer-friendly text editors, git clients, terminal emulators, etc.). You'll learn how Playgrounds.app works and what special rules it takes advantage of. We'll go through the AppStore rules for developer tools, and what changed recently to allow more powerful IDEs. We'll imagine how an IDE could look like on a multitouch device with new UIs and interactions, and what iOS 11 features we can leverage. A key feature of an IDE is executing code. We'll learn how this is possible on iOS, its limitations, and the difference between interpreted, JITed and compiled execution. We'll figure out what needs to change before we can have true desktop-grade IDEs on our iOS devices and put together an iOS 12 feature wishlist. Finally there (may) be an special invitation for attendees to beta test a little something 😬.
GameplayKit might seem to be all about games, but it contains valuable gems that are perfect to be used in regular apps. Some of the things you can use from GameplayKit in a non-game are: - 'QuadTree' for clustered of annotations on zoomable views, just like MapKit does in iOS 11. - 'Procedural Noise' for natural random animations - 'Perceptual Randomization' for better™ shuffled playlists ...or, why Steve Jobs said "We're making it less, to make it feel more random". - Non-uniform randomness like Gaussian, when uniform random just isn't suitable. - 'R-Tree' for performant rubber band selection like MindNode uses for the CALayer backed view hierarchy. - 'Pathfinding' for step by step navigation in indoor museums.
Tobias Due Munk Design + Dev of apps, FindZebra + Storytel + ECCOshoes
Dev + Design of apps in Copenhagen. Indie as developmunk.dk, currently with Slør – an app to edit Portrait Mode photos. Moonlighting as consultant + as organiser of local iOS meetups.
The iOS development community is generally split into two factions when it comes to writing automated tests: * Those that timidly don't write tests, mostly due to the difficulty of doing so on iOS, but quietly recognize their value * Those that vocally advocate for writing tests, and continuously build new tools & frameworks for testing, as well as educate the rest of the community For the most part, those in group B are correct, as tested code is generally better code. (The title of this talk is intentionally misleading.) However, there are many scenarios in which writing tests can actually be detrimental to your app, to your team, to your launch, to your users, and to the success of your company. This talk will cover: * A brief history of testing in iOS * When & why you *should* write tests * When & why you should *skip* writing tests: Building apps for pre-seed startups, building experimental features that will be rolled out to 1% of users, features that are almost entirely UI, and many other scenarios. A comparison of different team structures, application types, and in which of these testing is best skipped. This is intended to be a controversial yet educational talk, that is both technical & humorous in nature. :)
Animations set iOS apart from Android, they are signature garnish on top of every app recognized by Apple Design Awards. Over the years we accumulated many technologies allowing to build animations from simplest color changes to immersive experiences that make us praise the app on Twitter. But which one is the right for you? Are you sure you know all the options out there? Learn about many 1st and 3rd party frameworks, get to know their strong sides, be aware of their shortcomings. Get your definitive guide on animations!
Building iOS apps is difficult enough, without having to worry about building your build system as well. Dennis and a couple of friends, while building an iOS app themselves, grew so frustrated that with existing developer tools, they decided to put the app on hold and build a better platform for all mobile developers. Today, buddybuild helps thousands of development teams, build & test their code, deploy their apps, collect feedback and crash reports from their users - all with very little setup and maintenance. Dennis will tell the story of how buddybuild was created, and share some of the best practices he's learned from thousands of development teams.
Dennis Pilarinos Founder & CEO, Buddybuild
Dennis Pilarinos is the founder and CEO of buddybuild, a continuous integration, delivery and user feedback platform that is designed, built and optimized specifically for mobile app developers. Prior to buddybuild, Dennis held product and engineering leadership roles at Amazon building and running the teams responsible for the Silk Web browser UI for the Kindle Fire Tablet and Fire Phone devices. Prior to his time at Amazon, he spent 9 years at Microsoft and founded the Azure teams focused on defining, building, delivering and operating the Messaging, Access Control and Workflow offerings of Microsoft's cloud services platform.
There are many contenders for the title of new shiny and best app architecture for iOS apps. Many of them are brought in by developers coming from different programming background - like Java, Ruby, Javascript etc. There are lots of terms flying around like: MVVM, Flux, Redux, RX, VIPER etc. With existing terminology of MVC, Delegate and Singleton patterns and Dependency Injection — it’s not hard to imagine that even senior developers might find themselves overwhelmed. Many of the newer architectures are actively trying to replace existing coding practices that Apple continues to actively promote to developers and is implementing them in new APIs on the platform. In this talk I want to present an approach that doesn‘t replace anything - it embraces and builds on top of existing iOS API patterns. I will use an example (open-source) live app that shows: - what’s the correct way to use MVC - how to efficiently use DI (Dependency Injection) to properly transfer input data/configuration throughout the app how and when to use Delegate pattern - where and how to use Coordinators to manage data flow and display VCs, with minimum amount of boilerplate code - where do components like network and API wrappers fit into the app - how to create single point of data source for any other component in the app - how to persist data in such a way that you can easily replace all of it with something else (say switch from Core Data to Realm) Each of the components is loosely coupled with the rest, each component does not care about the rest of the app. This separation of concern leads to easier testing, simpler maintainance and large degree of freedom to change data flow or even completely replace certain parts. If the architecture must have a name, MVC-C-DNA would suffice. :)
Are you testing your Swift code? Are you able to get a decent coverage of your project? Testing is not a hipster trend, but a tool for increasing productivity (Yes, I mean that!) and reducing risk. So if you are not fully happy with your tests or you aren't testing yet, I think that it is worth spending some time to improve that. In this hands on session we will be writing code for a sample app. We will start with how to write unit tests and cover many of the pain points of unit testing and how to do that in Swift - What do I test? - How do I test that? - Why do I need test doubles? - What kind of test doubles can I use? - How do I implement them in Swift? - Even a little bit about architecture and how it helps testing. I 'assert' that this session is going to be awesome. Will you join me to make the test pass?
Core ML, Apple’s new foundational machine learning framework, is blazingly fast not to mention dead easy to incorporate in an app. To top that off Core ML boasts support for a broad variety of machine learning model types and provides a Python package to convert them. But how do you actually create and train a model to begin with? Join us as we go step by step through the whole process: Acquiring training data Creating, training and optimising the model Converting the model to Core ML and integrating it Wiring Core ML to the Vision framework To create a computer vision machine learning app.
Core ML, Apple’s new foundational machine learning framework, is blazingly fast not to mention dead easy to incorporate in an app. To top that off Core ML boasts support for a broad variety of machine learning model types and provides a Python package to convert them. But how do you actually create and train a model to begin with? Join us as we go step by step through the whole process: Acquiring training data Creating, training and optimising the model Converting the model to Core ML and integrating it Wiring Core ML to the Vision framework To create a computer vision machine learning app.
Probably you are an experienced iOS developer with expertise in Objective C and/or Swift. Probably you are proud of the high quality iOS apps you have built using Xcode. Probably at some time you have had the need or the curiosity to build an app for another mobile platform, like Android. Probably you don't want to compromise the quality of your apps because of the chosen development tool. And probably you want to make the most of you current iOS knowledge to cut down the development process. Xamarin is a framework that lets you build native iOS & Android apps sharing a common codebase written in C# and using their respective native SDKs. In this workshop we'll show you how Xamarin can help you to fulfill all those needs and to expand your development competences to a new horizon.
Marcos Cobeña-Morián Senior Mobile Developer, DEVSDNA
I work as Senior Mobile Developer at DevsDNA, crafting both native Android and iOS apps which share a single codebase. My toolbox is all around Xamarin, although I like to use the most of each platform, so Xcode and Android Studio come with me as well. Passionate about engineering Design specs into real products. I'm not a freak nor expert on any particular aspect but on finding the roots on how things work. I find Designers-Developers relationship a beautiful place to stay.
Probably you are an experienced iOS developer with expertise in Objective C and/or Swift. Probably you are proud of the high quality iOS apps you have built using Xcode. Probably at some time you have had the need or the curiosity to build an app for another mobile platform, like Android. Probably you don't want to compromise the quality of your apps because of the chosen development tool. And probably you want to make the most of you current iOS knowledge to cut down the development process. Xamarin is a framework that lets you build native iOS & Android apps sharing a common codebase written in C# and using their respective native SDKs. In this workshop we'll show you how Xamarin can help you to fulfill all those needs and to expand your development competences to a new horizon.